package com.zl.task.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zl.task.dto.ProductDTO;
import com.zl.task.pojo.ServiceOrder;
import com.zl.task.pojo.ServiceProduct;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author yinlingeng
 * @since 2021-07-23
 */
public interface IServiceProductService extends IService<ServiceProduct> {

    /**
     * 发布产品
     * @param productDTO
     * @return
     */
    String saveProduct(ProductDTO productDTO) throws Exception;

    /**
     * 修改产品信息
     * 隐藏/展示
     * @param productDTO
     * @return
     */
    Boolean updateProduct(ProductDTO productDTO) throws Exception;

    /**
     * 下架产品 （隐藏）
     * @return Boolean
     * @throws Exception -
     */
    Boolean hideProduct(Long productId,Long userId,Integer productStatus) throws Exception;

    /**
     * 产品展示
     * 产品状态为1 为显示 0为隐藏
     * @param typeId - 产品类型id
     * @param page - 页码
     * @param size - 页数
     * @param userType - 用户类型
     * @param userId - 用户Id
     * @return List<ServiceProduct>
     */
    Object listProduct(Integer typeId,Integer page,Integer size,String userType,Long userId) throws Exception;

    /**
     * 所有产品
     * @return
     */
    List<ServiceProduct> listAllProduct();

    /**
     * 删除产品
     * @param userId - 机构用户id
     * @param productId - 产品id
     * @return Boolean
     */
    Boolean deleteProduct(Long userId,String productId)throws Exception;



}
